// pages/main/main.js
var app = getApp()
Page({

  /**
   * 页面的初始数据
   */
  data: {
    state: "等待法官开始游戏",
    role_num: 0,
    user_list:[
      
    ],
    // role_list: [
    //   {
    //     "card_role": "平民",
    //     "card_selected": 3
    //   },
    //   {
    //     "card_role": "狼人",
    //     "card_selected": 3
    //   },
    //   {
    //     "card_role": "预言家",
    //     "card_selected": 1
    //   },
    //   {
    //     "card_role": "预言家",
    //     "card_selected": 1
    //   },
    //   {
    //     "card_role": "预言家",
    //     "card_selected": 1
    //   },
    //   {
    //     "card_role": "预言家",
    //     "card_selected": 1
    //   },
    //   {
    //     "card_role": "预言家",
    //     "card_selected": 1
    //   },
    //   {
    //     "card_role": "预言家",
    //     "card_selected": 1
    //   }
    // ]
  },
  setting: function() {
    wx.connectSocket({url: `ws://localhost:8080/ws/admin/${app.globalData.globalToken}`})
  },
  start_up: function() {
    wx.getUserProfile({
      desc: "在交互中展示头像区分用户",
      success: function(info) {
        console.log(info)
        wx.showLoading({
          title: '正在登录',
        })
        wx.login({
          // timeout: 1000,
          success(res) {
            console.log(res)
            if(res.code) {
              wx.request({
                // ?code=${res.code}
                url: `http://localhost:8080/user/login_with_info`,
                method: "POST",
                data: {
                  code: res.code,
                  user_info: info.userInfo
                },
                success:function(res) {
                  console.log(res)
                  if(res.data.res == 200 && res.data.data.token) {
                    wx.setStorage({
                      key: "token",
                      data: res.data.data.token,
                      success: function(e) {
                        wx.hideLoading()
                        console.log("设置缓存成功")
                        app.globalData.globalToken = res.data.data.token
                        wx.showToast({
                          title: '游戏马上开始！',
                        })
                      }
                    })
                  } else {
                    wx.hideLoading()
                    wx.showToast({
                      title: res.data.msg,
                      icon: 'error'
                    })
                  }
                },
                fail: function(res) {
                  wx.hideLoading()
                  wx.showToast({
                    title: '网络异常，请重试',
                    icon: 'error'
                  })
                  console.log(res)
                }
              })
            } else {
              wx.hideLoading()
              wx.showToast({
                title: '网络异常，请重试',
                icon: 'error'
              })
              console.log("login failed")
            }
          },
          fail(res) {
            wx.hideLoading()
            console.error("login failed")
            console.log(res)
          }
        })
      }
    })
    let _this = this
      if(!app.globalData.globalToken) {
        
      } else {
        wx.showToast({
          title: '游戏马上开始！',
        })
      }
    
  },
  shareAppMessage: function(res) {
    wx.showShareMenu({
      withShareTicket:true,
      success: function(res) {
        console.log(res)
      },
      fail: function(res) {
        console.error(res)
      }
    })
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    var _this = this
    wx.getSystemInfo({
      success: function (res) {
        // console.log(res)
        _this.setData({
          card_w: res.screenWidth / 5.5
        })
        // 判断设备是否为刘海屏
        if (res.model.indexOf("iPhone") >= 0 || (res.statusBarHeight > 20)) {
          _this.setData({
            bar_height: res.statusBarHeight,
          })
        }
      }
    })

    wx.request({
      url: `http://localhost:8080/room/settings?room_id=${options.room_id}`,
      success: function(res) {
        let result = res.data
        console.log(result)
        if(result.res == 200) {
          _this.setData({
            role_list: result.data.card_list,
            status: result.data.status,
            settings: result.data.settings
          })
          // 初始化用户数量
          let num = 0;
          for(let i = 0; i < _this.data.role_list.length; i ++) {
            num += _this.data.role_list[i].card_selected;
          }
          _this.setData({
            role_num: num
          })
        } else {
          console.log(res)
        }
      },
      fail: function(res) {
        console.log(res)
      }
    })


    // socket监听器
    wx.onSocketOpen(function (res) {
      console.log('WebSocket 已连接')

      
    })
    wx.onSocketError(function (res) {
      console.log('WebSocket连接打开失败，请检查！')
    })
    wx.onSocketMessage(function (res) {
      let info = JSON.parse(res.data)
      console.log(info)
      if(info.res == 10001) {
        _this.setData({
          user_list: _this.data.user_list.concat(info.data.user_info)
        })
      }
      if(info.res == 10002 && info.data.user_list.length != 0) {
        _this.setData({
          socketOpen: true,
          user_list: _this.data.user_list.concat(info.data.user_list)
        })
      }
      // res.data: iris-websocket-message:chat;0;qqq
      console.log('收到服务器内容：', res.data)
    })
    wx.onSocketClose(function (res) {
      console.log('WebSocket 已关闭！')
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    console.log("page show: ", app.globalData.globalToken)
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {
    console.log("page hide: ", app.globalData.globalToken)
  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {
    console.log("page unload: ", app.globalData.globalToken)
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function (res) {
    console.log("点击分享按钮")
    console.log(res)
  }
})